import { parse, setFilterMap } from '../ij2tpl';

setFilterMap({
  toClass: function(type_) {
    let class_ = 'unknown';

    if (type_ == 'directory')
      class_ = 'dir';
    else if (type_ == 'file')
      class_ = 'file';

    return class_;
  }
});

const template = parse(`\
{{?contents.length}}
<ul>
    {{?contents}} {{- Is directory? }}
        {{-}}<li><a class="icon {{type | toClass}}">{{name}}</a></li>
        {{-}}{{@^}}
    {{/contents}}
</ul>
{{/contents.length}}
`, '{{', '}}');


const elem: Element = document.getElementById('content') as Element;

/**
 * Generated from `tree -J` Mozilla Javascript 1.5 Source.
 */
const data = {'contents':[
  {'type':'directory','name':'js','contents':[
    {'type':'directory','name':'CVS','contents':[
      {'type':'file','name':'Entries'}
      ,{'type':'file','name':'Entries.Static'}
      ,{'type':'file','name':'Repository'}
      ,{'type':'file','name':'Root'}
      ,{'type':'file','name':'Tag'}
    ]}
    ,{'type':'directory','name':'jsd','contents':[
      {'type':'directory','name':'CVS','contents':[
        {'type':'file','name':'Entries'}
        ,{'type':'file','name':'Entries.Log'}
        ,{'type':'file','name':'Repository'}
        ,{'type':'file','name':'Root'}
        ,{'type':'file','name':'Tag'}
      ]}
      ,{'type':'file','name':'Makefile.in'}
      ,{'type':'file','name':'README'}
      ,{'type':'directory','name':'idl','contents':[
        {'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'Makefile.in'}
        ,{'type':'file','name':'jsdIDebuggerService.idl'}
      ]}
      ,{'type':'file','name':'jsd.h'}
      ,{'type':'file','name':'jsd.mak'}
      ,{'type':'file','name':'jsd.pkg'}
      ,{'type':'file','name':'jsd1640.def'}
      ,{'type':'file','name':'jsd1640.rc'}
      ,{'type':'file','name':'jsd3240.rc'}
      ,{'type':'file','name':'jsd_atom.c'}
      ,{'type':'file','name':'jsd_high.c'}
      ,{'type':'file','name':'jsd_hook.c'}
      ,{'type':'file','name':'jsd_java.c'}
      ,{'type':'file','name':'jsd_lock.c'}
      ,{'type':'file','name':'jsd_lock.h'}
      ,{'type':'file','name':'jsd_obj.c'}
      ,{'type':'file','name':'jsd_scpt.c'}
      ,{'type':'file','name':'jsd_stak.c'}
      ,{'type':'file','name':'jsd_step.c'}
      ,{'type':'file','name':'jsd_text.c'}
      ,{'type':'file','name':'jsd_val.c'}
      ,{'type':'file','name':'jsd_xpc.cpp'}
      ,{'type':'file','name':'jsd_xpc.h'}
      ,{'type':'file','name':'jsdebug.c'}
      ,{'type':'file','name':'jsdebug.h'}
      ,{'type':'file','name':'jsdshell.mak'}
      ,{'type':'file','name':'jsdstubs.c'}
      ,{'type':'file','name':'mkshell.bat'}
      ,{'type':'file','name':'resource.h'}
    ]}
    ,{'type':'directory','name':'src','contents':[
      {'type':'directory','name':'CVS','contents':[
        {'type':'file','name':'Entries'}
        ,{'type':'file','name':'Repository'}
        ,{'type':'file','name':'Root'}
        ,{'type':'file','name':'Tag'}
      ]}
      ,{'type':'file','name':'Makefile.in'}
      ,{'type':'file','name':'Makefile.ref'}
      ,{'type':'file','name':'README.html'}
      ,{'type':'file','name':'SpiderMonkey.rsp'}
      ,{'type':'directory','name':'config','contents':[
        {'type':'file','name':'AIX4.1.mk'}
        ,{'type':'file','name':'AIX4.2.mk'}
        ,{'type':'file','name':'AIX4.3.mk'}
        ,{'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'Darwin.mk'}
        ,{'type':'file','name':'Darwin1.3.mk'}
        ,{'type':'file','name':'Darwin1.4.mk'}
        ,{'type':'file','name':'Darwin5.2.mk'}
        ,{'type':'file','name':'Darwin5.3.mk'}
        ,{'type':'file','name':'HP-UXB.10.10.mk'}
        ,{'type':'file','name':'HP-UXB.10.20.mk'}
        ,{'type':'file','name':'HP-UXB.11.00.mk'}
        ,{'type':'file','name':'IRIX.mk'}
        ,{'type':'file','name':'IRIX5.3.mk'}
        ,{'type':'file','name':'IRIX6.1.mk'}
        ,{'type':'file','name':'IRIX6.2.mk'}
        ,{'type':'file','name':'IRIX6.3.mk'}
        ,{'type':'file','name':'IRIX6.5.mk'}
        ,{'type':'file','name':'Linux_All.mk'}
        ,{'type':'file','name':'Mac_OS10.0.mk'}
        ,{'type':'file','name':'OSF1V4.0.mk'}
        ,{'type':'file','name':'OSF1V5.0.mk'}
        ,{'type':'file','name':'SunOS4.1.4.mk'}
        ,{'type':'file','name':'SunOS5.3.mk'}
        ,{'type':'file','name':'SunOS5.4.mk'}
        ,{'type':'file','name':'SunOS5.5.1.mk'}
        ,{'type':'file','name':'SunOS5.5.mk'}
        ,{'type':'file','name':'SunOS5.6.mk'}
        ,{'type':'file','name':'SunOS5.7.mk'}
        ,{'type':'file','name':'SunOS5.8.mk'}
        ,{'type':'file','name':'SunOS5.9.mk'}
        ,{'type':'file','name':'WINNT4.0.mk'}
        ,{'type':'file','name':'WINNT5.0.mk'}
        ,{'type':'file','name':'WINNT5.1.mk'}
        ,{'type':'file','name':'WINNT5.2.mk'}
        ,{'type':'file','name':'dgux.mk'}
      ]}
      ,{'type':'file','name':'config.mk'}
      ,{'type':'directory','name':'editline','contents':[
        {'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'Makefile.ref'}
        ,{'type':'file','name':'README'}
        ,{'type':'file','name':'editline.3'}
        ,{'type':'file','name':'editline.c'}
        ,{'type':'file','name':'editline.h'}
        ,{'type':'file','name':'sysunix.c'}
        ,{'type':'file','name':'unix.h'}
      ]}
      ,{'type':'directory','name':'fdlibm','contents':[
        {'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'Makefile.in'}
        ,{'type':'file','name':'Makefile.ref'}
        ,{'type':'file','name':'e_acos.c'}
        ,{'type':'file','name':'e_acosh.c'}
        ,{'type':'file','name':'e_asin.c'}
        ,{'type':'file','name':'e_atan2.c'}
        ,{'type':'file','name':'e_atanh.c'}
        ,{'type':'file','name':'e_cosh.c'}
        ,{'type':'file','name':'e_exp.c'}
        ,{'type':'file','name':'e_fmod.c'}
        ,{'type':'file','name':'e_gamma.c'}
        ,{'type':'file','name':'e_gamma_r.c'}
        ,{'type':'file','name':'e_hypot.c'}
        ,{'type':'file','name':'e_j0.c'}
        ,{'type':'file','name':'e_j1.c'}
        ,{'type':'file','name':'e_jn.c'}
        ,{'type':'file','name':'e_lgamma.c'}
        ,{'type':'file','name':'e_lgamma_r.c'}
        ,{'type':'file','name':'e_log.c'}
        ,{'type':'file','name':'e_log10.c'}
        ,{'type':'file','name':'e_pow.c'}
        ,{'type':'file','name':'e_rem_pio2.c'}
        ,{'type':'file','name':'e_remainder.c'}
        ,{'type':'file','name':'e_scalb.c'}
        ,{'type':'file','name':'e_sinh.c'}
        ,{'type':'file','name':'e_sqrt.c'}
        ,{'type':'file','name':'fdlibm.h'}
        ,{'type':'file','name':'fdlibm.mak'}
        ,{'type':'file','name':'fdlibm.mdp'}
        ,{'type':'file','name':'k_cos.c'}
        ,{'type':'file','name':'k_rem_pio2.c'}
        ,{'type':'file','name':'k_sin.c'}
        ,{'type':'file','name':'k_standard.c'}
        ,{'type':'file','name':'k_tan.c'}
        ,{'type':'file','name':'s_asinh.c'}
        ,{'type':'file','name':'s_atan.c'}
        ,{'type':'file','name':'s_cbrt.c'}
        ,{'type':'file','name':'s_ceil.c'}
        ,{'type':'file','name':'s_copysign.c'}
        ,{'type':'file','name':'s_cos.c'}
        ,{'type':'file','name':'s_erf.c'}
        ,{'type':'file','name':'s_expm1.c'}
        ,{'type':'file','name':'s_fabs.c'}
        ,{'type':'file','name':'s_finite.c'}
        ,{'type':'file','name':'s_floor.c'}
        ,{'type':'file','name':'s_frexp.c'}
        ,{'type':'file','name':'s_ilogb.c'}
        ,{'type':'file','name':'s_isnan.c'}
        ,{'type':'file','name':'s_ldexp.c'}
        ,{'type':'file','name':'s_lib_version.c'}
        ,{'type':'file','name':'s_log1p.c'}
        ,{'type':'file','name':'s_logb.c'}
        ,{'type':'file','name':'s_matherr.c'}
        ,{'type':'file','name':'s_modf.c'}
        ,{'type':'file','name':'s_nextafter.c'}
        ,{'type':'file','name':'s_rint.c'}
        ,{'type':'file','name':'s_scalbn.c'}
        ,{'type':'file','name':'s_signgam.c'}
        ,{'type':'file','name':'s_significand.c'}
        ,{'type':'file','name':'s_sin.c'}
        ,{'type':'file','name':'s_tan.c'}
        ,{'type':'file','name':'s_tanh.c'}
        ,{'type':'file','name':'w_acos.c'}
        ,{'type':'file','name':'w_acosh.c'}
        ,{'type':'file','name':'w_asin.c'}
        ,{'type':'file','name':'w_atan2.c'}
        ,{'type':'file','name':'w_atanh.c'}
        ,{'type':'file','name':'w_cosh.c'}
        ,{'type':'file','name':'w_exp.c'}
        ,{'type':'file','name':'w_fmod.c'}
        ,{'type':'file','name':'w_gamma.c'}
        ,{'type':'file','name':'w_gamma_r.c'}
        ,{'type':'file','name':'w_hypot.c'}
        ,{'type':'file','name':'w_j0.c'}
        ,{'type':'file','name':'w_j1.c'}
        ,{'type':'file','name':'w_jn.c'}
        ,{'type':'file','name':'w_lgamma.c'}
        ,{'type':'file','name':'w_lgamma_r.c'}
        ,{'type':'file','name':'w_log.c'}
        ,{'type':'file','name':'w_log10.c'}
        ,{'type':'file','name':'w_pow.c'}
        ,{'type':'file','name':'w_remainder.c'}
        ,{'type':'file','name':'w_scalb.c'}
        ,{'type':'file','name':'w_sinh.c'}
        ,{'type':'file','name':'w_sqrt.c'}
      ]}
      ,{'type':'file','name':'js.c'}
      ,{'type':'file','name':'js.mak'}
      ,{'type':'file','name':'js.mdp'}
      ,{'type':'file','name':'js.msg'}
      ,{'type':'file','name':'js.pkg'}
      ,{'type':'file','name':'js3240.rc'}
      ,{'type':'file','name':'jsOS240.def'}
      ,{'type':'file','name':'jsapi.c'}
      ,{'type':'file','name':'jsapi.h'}
      ,{'type':'file','name':'jsarena.c'}
      ,{'type':'file','name':'jsarena.h'}
      ,{'type':'file','name':'jsarray.c'}
      ,{'type':'file','name':'jsarray.h'}
      ,{'type':'file','name':'jsatom.c'}
      ,{'type':'file','name':'jsatom.h'}
      ,{'type':'file','name':'jsbit.h'}
      ,{'type':'file','name':'jsbool.c'}
      ,{'type':'file','name':'jsbool.h'}
      ,{'type':'file','name':'jsclist.h'}
      ,{'type':'file','name':'jscntxt.c'}
      ,{'type':'file','name':'jscntxt.h'}
      ,{'type':'file','name':'jscompat.h'}
      ,{'type':'file','name':'jsconfig.h'}
      ,{'type':'file','name':'jsconfig.mk'}
      ,{'type':'file','name':'jscpucfg.c'}
      ,{'type':'file','name':'jscpucfg.h'}
      ,{'type':'file','name':'jsdate.c'}
      ,{'type':'file','name':'jsdate.h'}
      ,{'type':'file','name':'jsdbgapi.c'}
      ,{'type':'file','name':'jsdbgapi.h'}
      ,{'type':'file','name':'jsdhash.c'}
      ,{'type':'file','name':'jsdhash.h'}
      ,{'type':'file','name':'jsdtoa.c'}
      ,{'type':'file','name':'jsdtoa.h'}
      ,{'type':'file','name':'jsemit.c'}
      ,{'type':'file','name':'jsemit.h'}
      ,{'type':'file','name':'jsexn.c'}
      ,{'type':'file','name':'jsexn.h'}
      ,{'type':'file','name':'jsfile.c'}
      ,{'type':'file','name':'jsfile.h'}
      ,{'type':'file','name':'jsfile.msg'}
      ,{'type':'file','name':'jsfun.c'}
      ,{'type':'file','name':'jsfun.h'}
      ,{'type':'file','name':'jsgc.c'}
      ,{'type':'file','name':'jsgc.h'}
      ,{'type':'file','name':'jshash.c'}
      ,{'type':'file','name':'jshash.h'}
      ,{'type':'file','name':'jsify.pl'}
      ,{'type':'file','name':'jsinterp.c'}
      ,{'type':'file','name':'jsinterp.h'}
      ,{'type':'file','name':'jslibmath.h'}
      ,{'type':'file','name':'jslock.c'}
      ,{'type':'file','name':'jslock.h'}
      ,{'type':'file','name':'jslocko.asm'}
      ,{'type':'file','name':'jslog2.c'}
      ,{'type':'file','name':'jslong.c'}
      ,{'type':'file','name':'jslong.h'}
      ,{'type':'file','name':'jsmath.c'}
      ,{'type':'file','name':'jsmath.h'}
      ,{'type':'file','name':'jsnum.c'}
      ,{'type':'file','name':'jsnum.h'}
      ,{'type':'file','name':'jsobj.c'}
      ,{'type':'file','name':'jsobj.h'}
      ,{'type':'file','name':'jsopcode.c'}
      ,{'type':'file','name':'jsopcode.h'}
      ,{'type':'file','name':'jsopcode.tbl'}
      ,{'type':'file','name':'jsosdep.h'}
      ,{'type':'file','name':'jsotypes.h'}
      ,{'type':'file','name':'jsparse.c'}
      ,{'type':'file','name':'jsparse.h'}
      ,{'type':'file','name':'jsprf.c'}
      ,{'type':'file','name':'jsprf.h'}
      ,{'type':'file','name':'jsprvtd.h'}
      ,{'type':'file','name':'jspubtd.h'}
      ,{'type':'file','name':'jsregexp.c'}
      ,{'type':'file','name':'jsregexp.h'}
      ,{'type':'file','name':'jsscan.c'}
      ,{'type':'file','name':'jsscan.h'}
      ,{'type':'file','name':'jsscope.c'}
      ,{'type':'file','name':'jsscope.h'}
      ,{'type':'file','name':'jsscript.c'}
      ,{'type':'file','name':'jsscript.h'}
      ,{'type':'file','name':'jsshell.msg'}
      ,{'type':'file','name':'jsstddef.h'}
      ,{'type':'file','name':'jsstr.c'}
      ,{'type':'file','name':'jsstr.h'}
      ,{'type':'file','name':'jstypes.h'}
      ,{'type':'file','name':'jsutil.c'}
      ,{'type':'file','name':'jsutil.h'}
      ,{'type':'file','name':'jsxdrapi.c'}
      ,{'type':'file','name':'jsxdrapi.h'}
      ,{'type':'directory','name':'liveconnect','contents':[
        {'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Entries.Log'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'LiveConnect.dsp'}
        ,{'type':'file','name':'LiveConnectShell.dsp'}
        ,{'type':'file','name':'LiveConnectShell.dsw'}
        ,{'type':'file','name':'Makefile.in'}
        ,{'type':'file','name':'Makefile.ref'}
        ,{'type':'file','name':'README.html'}
        ,{'type':'directory','name':'_jni','contents':[
          {'type':'directory','name':'CVS','contents':[
            {'type':'file','name':'Entries'}
            ,{'type':'file','name':'Repository'}
            ,{'type':'file','name':'Root'}
            ,{'type':'file','name':'Tag'}
          ]}
          ,{'type':'file','name':'netscape_javascript_JSException.h'}
          ,{'type':'file','name':'netscape_javascript_JSObject.h'}
        ]}
        ,{'type':'directory','name':'classes','contents':[
          {'type':'directory','name':'CVS','contents':[
            {'type':'file','name':'Entries'}
            ,{'type':'file','name':'Entries.Log'}
            ,{'type':'file','name':'Repository'}
            ,{'type':'file','name':'Root'}
            ,{'type':'file','name':'Tag'}
          ]}
          ,{'type':'file','name':'Makefile.in'}
          ,{'type':'file','name':'Makefile.ref'}
          ,{'type':'directory','name':'netscape','contents':[
            {'type':'directory','name':'CVS','contents':[
              {'type':'file','name':'Entries'}
              ,{'type':'file','name':'Repository'}
              ,{'type':'file','name':'Root'}
              ,{'type':'file','name':'Tag'}
            ]}
            ,{'type':'file','name':'Makefile.ref'}
            ,{'type':'directory','name':'javascript','contents':[
              {'type':'directory','name':'CVS','contents':[
                {'type':'file','name':'Entries'}
                ,{'type':'file','name':'Repository'}
                ,{'type':'file','name':'Root'}
                ,{'type':'file','name':'Tag'}
              ]}
              ,{'type':'file','name':'JSException.java'}
              ,{'type':'file','name':'JSObject.java'}
              ,{'type':'file','name':'JSProxy.java'}
              ,{'type':'file','name':'JSRunnable.java'}
              ,{'type':'file','name':'JSUtil.java'}
              ,{'type':'file','name':'Makefile.ref'}
            ]}
          ]}
        ]}
        ,{'type':'directory','name':'config','contents':[
          {'type':'file','name':'AIX4.1.mk'}
          ,{'type':'file','name':'AIX4.2.mk'}
          ,{'type':'file','name':'AIX4.3.mk'}
          ,{'type':'directory','name':'CVS','contents':[
            {'type':'file','name':'Entries'}
            ,{'type':'file','name':'Repository'}
            ,{'type':'file','name':'Root'}
            ,{'type':'file','name':'Tag'}
          ]}
          ,{'type':'file','name':'HP-UXB.10.10.mk'}
          ,{'type':'file','name':'HP-UXB.10.20.mk'}
          ,{'type':'file','name':'HP-UXB.11.00.mk'}
          ,{'type':'file','name':'IRIX6.2.mk'}
          ,{'type':'file','name':'IRIX6.3.mk'}
          ,{'type':'file','name':'IRIX6.5.mk'}
          ,{'type':'file','name':'Linux_All.mk'}
          ,{'type':'file','name':'OSF1V4.0.mk'}
          ,{'type':'file','name':'OSF1V5.0.mk'}
          ,{'type':'file','name':'SunOS5.5.1.mk'}
          ,{'type':'file','name':'SunOS5.6.mk'}
          ,{'type':'file','name':'SunOS5.7.mk'}
          ,{'type':'file','name':'SunOS5.8.mk'}
          ,{'type':'file','name':'WINNT4.0.mk'}
        ]}
        ,{'type':'file','name':'jsj.c'}
        ,{'type':'file','name':'jsj.msg'}
        ,{'type':'file','name':'jsj_JSObject.c'}
        ,{'type':'file','name':'jsj_JavaArray.c'}
        ,{'type':'file','name':'jsj_JavaClass.c'}
        ,{'type':'file','name':'jsj_JavaMember.c'}
        ,{'type':'file','name':'jsj_JavaObject.c'}
        ,{'type':'file','name':'jsj_JavaPackage.c'}
        ,{'type':'file','name':'jsj_array.c'}
        ,{'type':'file','name':'jsj_class.c'}
        ,{'type':'file','name':'jsj_convert.c'}
        ,{'type':'file','name':'jsj_field.c'}
        ,{'type':'file','name':'jsj_hash.c'}
        ,{'type':'file','name':'jsj_hash.h'}
        ,{'type':'file','name':'jsj_method.c'}
        ,{'type':'file','name':'jsj_nodl.c'}
        ,{'type':'file','name':'jsj_private.h'}
        ,{'type':'file','name':'jsj_simpleapi.c'}
        ,{'type':'file','name':'jsj_utils.c'}
        ,{'type':'file','name':'jsjava.h'}
        ,{'type':'file','name':'liveconnect.pkg'}
        ,{'type':'file','name':'netscape_javascript_JSObject.h'}
        ,{'type':'file','name':'nsCLiveconnect.cpp'}
        ,{'type':'file','name':'nsCLiveconnect.h'}
        ,{'type':'file','name':'nsCLiveconnectFactory.cpp'}
        ,{'type':'file','name':'nsCLiveconnectFactory.h'}
        ,{'type':'file','name':'nsILiveconnect.h'}
        ,{'type':'file','name':'nsISecureLiveconnect.h'}
        ,{'type':'file','name':'nsISecurityContext.h'}
        ,{'type':'file','name':'win32.order'}
      ]}
      ,{'type':'file','name':'lock_SunOS.s'}
      ,{'type':'file','name':'perfect.js'}
      ,{'type':'directory','name':'perlconnect','contents':[
        {'type':'directory','name':'CVS','contents':[
          {'type':'file','name':'Entries'}
          ,{'type':'file','name':'Repository'}
          ,{'type':'file','name':'Root'}
          ,{'type':'file','name':'Tag'}
        ]}
        ,{'type':'file','name':'JS.def'}
        ,{'type':'file','name':'JS.dsp'}
        ,{'type':'file','name':'JS.pm'}
        ,{'type':'file','name':'JS.xs'}
        ,{'type':'file','name':'Makefile.PL'}
        ,{'type':'file','name':'Makefile.ref'}
        ,{'type':'file','name':'PerlConnect.dsp'}
        ,{'type':'file','name':'PerlConnect.dsw'}
        ,{'type':'file','name':'PerlConnect.pm'}
        ,{'type':'file','name':'PerlConnectShell.dsp'}
        ,{'type':'file','name':'README.html'}
        ,{'type':'file','name':'bg.jpg'}
        ,{'type':'file','name':'jsperl.c'}
        ,{'type':'file','name':'jsperl.h'}
        ,{'type':'file','name':'jsperlbuild.pl'}
        ,{'type':'file','name':'jsperlpvt.h'}
        ,{'type':'file','name':'test.js'}
        ,{'type':'file','name':'test.pl'}
        ,{'type':'file','name':'typemap'}
      ]}
      ,{'type':'file','name':'plify_jsdhash.sed'}
      ,{'type':'file','name':'prmjtime.c'}
      ,{'type':'file','name':'prmjtime.h'}
      ,{'type':'file','name':'resource.h'}
      ,{'type':'file','name':'rules.mk'}
      ,{'type':'file','name':'win32.order'}
    ]}
  ]}
]};


elem.innerHTML = template.render(data);